﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Kz.Telegram.Bot.Infrastructure.Extensions
{
    public static class ByteExtension
    {
        /// <summary>
        /// 去除byte[]数组缓冲区内的尾部空白区
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public static byte[] bytesTrimEnd(this byte[] bytes)
        {
            List<byte> list = bytes.ToList();
            for (int i = bytes.Length - 1; i >= 0; i--)
            {
                if (bytes[i] == 0x00)
                {
                    list.RemoveAt(i);
                }
                else
                {
                    break;
                }
            }
            return list.ToArray();
        }

        /// <summary>
        /// 去除byte[]数组缓冲区内的尾部空白区
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public static byte[] CutTail(this byte[] bytes)
        {
            int j = 0;
            byte[] tempb = null;
            for (int i = bytes.Length - 1; i >= 0; i--)
            {
                if (bytes[i] != 0x00 & j == 0)
                {
                    j = i;
                    if (tempb == null)
                    {
                        tempb = new byte[j + 1];
                    }

                    tempb[j] = bytes[i];
                    j--;
                }
                else
                {
                    if (tempb != null)
                    {
                        tempb[j] = bytes[i];
                        j--;
                    }
                }
            }
            return tempb;
        }
    }
}